package com.yupi.springbootinit.model.vo.production;

import lombok.Data;

import java.time.LocalDateTime;

/**
 * @Author:WwW
 * @Description
 * @Date: 2025/10/14  10:06
 */
@Data
public class ProcessStepVO {
    /**
     * 工序ID
     */
    private Long id;

    /**
     * 批次ID
     */
    private Long batchId;

    /**
     * 工序序号
     */
    private Integer sequenceNo;

    /**
     * 工序名称
     */
    private String operationName;

    /**
     * 工序编码
     */
    private String operationCode;

    /**
     * 计划开始时间
     */
    private LocalDateTime planStart;

    /**
     * 计划结束时间
     */
    private LocalDateTime planEnd;

    /**
     * 计划时长（分钟）
     */
    private Integer expectedDurationMinutes;

    /**
     * 实际开始时间
     */
    private LocalDateTime actualStart;

    /**
     * 实际结束时间
     */
    private LocalDateTime actualEnd;

    /**
     * 状态
     */
    private String status;

    /**
     * 状态显示名称
     */
    private String statusName;

    /**
     * 是否需要检验
     */
    private Integer needInspection;

    /**
     * 操作员姓名
     */
    private String operatorName;

    /**
     * 备注
     */
    private String remark;

    private String inspectionMethod;

    private String processRequirement;

    private String inspectionCriteria;

    private Integer isOutsourced;

    private Integer isInspectionRequired;
    /**
     * 是否启动逾期
     * 判断条件：未启动 && 当前时间 > 计划开始时间 + 5分钟
     */
    private Boolean startOverdue;

    /**
     * 启动逾期分钟数
     * 计算：当前时间 - 计划开始时间
     */
    private Long startOverdueMinutes;

    /**
     * 是否完成逾期
     * 判断条件：已启动未完成 && 当前时间 > 计划完成时间
     */
    private Boolean completionOverdue;

    /**
     * 完成逾期分钟数
     * 计算：当前时间 - 计划完成时间
     */
    private Long completionOverdueMinutes;

    private static final long serialVersionUID = 1L;
}
